DOS Memory Overview PC operating environments Almost all x-86-based PCs use the Windows operating systems. Windows 3.1 is rarely used today, but many 16-bit Windows 3.1 applications as well as DOS applications, still run under Windows 98, Windows XP and other 32-bit versions of Windows. OS/2, highly regarded as a robust and stable operating system, had its loyal followers but always suffered from limited application and driver support and never caught on. Linux is increasingly becoming popular for the desktop and runs on x-86 machines. The History of PC Operating Systems The PC was created without a glimmer of its future potential. As it became mainstream, its flaws surfaced. For example, its 8088 CPU was limited to one megabyte of memory, the first 640K of which was used for applications, with the remaining 384K set aside for the operating system and drivers (see PC memory map). That upper 384K, known as the Upper Memory Area (UMA), gave rise to countless techniques for squeezing more drivers into it so there would be room for applications in the precious 640K below. DOS was designed to run only one program at a time, and users eventually wanted more than one program active so they could switch back and forth. In order to get around DOS's single task nature and the PC's 640K limit, a variety of add-ons, techniques and remedies were created to solve this dilemma. Following is a synopsis. TSRs In 1984, Borland introduced Sidekick and popularized the TSR, or popup, program. Sidekick stayed in memory but swapped in and out of view by pressing a hotkey. Users could instantly switch to a handy phone directory or notepad. However, keeping many TSRs in memory may not leave room for bigger applications, and TSRs are known to cause conflicts. TSRs can still run under Windows, but generally must be popped up within a DOS window. EXPANDED MEMORY In 1984, expanded memory (EMS) was created to break the one megabyte barrier. An EMS board with multiple megabytes of RAM could be plugged in, and its memory used directly by EMS applications. Lotus 1-2-3 quickly took advantage of it and hundreds of other applications were written to use it. Windows supports EMS for older DOS applications that require it. See EMS. TASK SWITCHERS & MULTITASKERS Programs such as Software Carousel extended DOS's capabilities by allowing the user to keep a variety of programs open at the same time and switch back and forth between them. These "task switchers" used EMS memory, extended memory and/or the hard disk to swap applications in and out of conventional memory. Combining multitasking with task switching, Quarterdeck's popular DESQview was the first control program to use expanded (EMS) memory to allow programs to run in, not just reside in, the background. MEMORY MANAGERS Memory managers were developed to store TSRs and other memory-resident software (drivers) in the Upper Memory Area. Memory managers manage both extended and EMS memory, and products, such as QEMM, 386MAX and DOS 6's EMM386.EXE, can allocate both types on demand. See DOS memory manager and memory allocation. EXTENDED MEMORY & WINDOWS By the late 1980s, the DOS extender was introduced, which is software that allows DOS applications to run in, not just reside in, extended memory. Paradox 386 and Lotus 1-2-3 Version 3.0 were some of the first programs to use it. Windows uses its own equivalent DOS extender technologies to manage all the memory in the PC. It lets users launch, keep active and switch between several Windows and DOS applications. Windows' ability to finally use large amounts of memory in the PC contributed to the success of Windows 3.0 and later 3.1. Windows 95/98, which utilizes the 32-bit architecture of the x86 chip, inherently uses all of extended memory, but still has to deal with conventional memory for legacy applications. DOS 5 & 6 DOS 5 added a task switching capability that ran multiple DOS applications, swapping inactive ones to disk. It improved memory management, freeing up more conventional memory by loading operating system components into upper memory. DOS 6 improved memory management and added realtime compression. It allocated extended memory and EMS memory on demand, making it more flexible for running a mix of old DOS and new Windows programs. Its DoubleSpace or DriveSpace compression doubled the capacity of a hard disk. In DOS 6, for the first time, a variety of stand-alone utility programs were included. DR-DOS DR-DOS is a DOS-compatible operating system with advanced memory management and other features that always inspired Microsoft to include similar functionality in its subsequent DOS releases. Novell acquired DR-DOS, added NetWare functionality to it, and then sold it to Caldera (see DR-DOS). The Bad News The legacy of TSRs, memory managers and task switchers combined with the various versions of DOS and Windows made quite a nightmare for the micro manager in a large enterprise before the mid-1990s. The Good News Starting with Windows 95, most memory management problems were solved. If you are starting out with computers today, you have avoided a huge number of growing pains since the advent of the PC in 1981.